package com.xgh.offer;

import com.xgh.ListNode;

/**
 * @ClassName Offer52
 * @Description
 * @Author xinggh
 * @Date 2020/7/2 11:29
 * @Version 1.0
 **/
public class Offer52 {
    /**
     * 剑指 Offer 52. 两个链表的第一个公共节点
     * 输入两个链表，找出它们的第一个公共节点。
     * <p>
     * 如下面的两个链表：
     * <p>
     * <p>
     * <p>
     * 在节点 c1 开始相交。
     * <p>
     * <p>
     * <p>
     * 示例 1：
     */

    public ListNode getIntersectionNode(ListNode headA, ListNode headB) {

        if (headA == null || headB == null) {
            return null;
        }

        ListNode l1 = headA;
        ListNode l2 = headB;
        while (l1 != l2) {
            l1 = l1 == null ? headB : l1.next;
            l2 = l2 == null ? headA : l2.next;
        }

        return l1;
    }
}
